InterCom's History v0.99 Beta 2 o dialing directory editing from quick dial dialog o explanation machine message playback o explanation for error messages o configuration dialogs now in one notebook control o configuration information stored in an INI file o list of know ICTalk servers now included o search button now default in ICPages search dialog o last ICPages search criteria stored o support for 8-bit sound cards o ICPages search dialog no longer locks up when OK pressed o call person dialog field errors fixed o exits fast with better thread management o capabilities of sound card now retrieved correctly o changed input level to high o improved message communication between threads o corrected spelling errors in server configuration dialog o type of sound card and status of TCP/IP now displayed in product information dialog o OK changed to Close in ICPages search dialog o help button works in Quick Dial dialog o no longer locks up if error encountered trying to play or record sound o consolidated all ICTalk dialogs into one dialog o added login/logout of all ICTalk servers button o added a volume control o allow loading if TCP/IP fails, but all calling and answering disabled o fixed slow send and receive of data due to blocking on send and recv calls on the socket o answering machine threads now shut down properly o main window and ictalk window now remember the position on the screen when they are closed o fixed memory leaks caused by not freeing some allocated memory when certain dialogs closed o dynamic IP management server to all calling of people with a dynamic IP o sample rate adjustable when lossy compression on because some sounds cards don't support 8000 per second o Minimum sample rate increased o added icon to main dialog o caller ID information received from person called added to caller ID information window o login to ICTalk servers denied unless an alias is specified o ability to add people to the dialing directory from the Caller ID information o fixed memory deallocation bug at program exit v0.99 Beta 3 o Incorrect dialog was loaded when an incompatible version of the remote client or server fixed o Call button in ICTalk dialog box now enables and disables correctly o Fixed incorrect help panels from being displayed o Multicolumn list boxes now sort the entries case insensitively o Duplicate names not shown in ICTalk user list o Rearranged ICTalk dialog to show more of the user list o Fixed collision that could occur if user clicked answer at the same time as the answering machine picked up. o Fixed problem with scroll bars not working in the multicolumn list boxes o Toggling of buttons and sliders no longer occurs in background threads o New sound memory manager that reduces the demand on reallocation of memory o Added buttons to clear entries from the caller id information o Added Quick Control dialog so that talking entire dialog doesn't have to be displayed in order to talk o ICTalk and Quick Control dialog now appear on the task list o Added Activity LED's v0.99 Beta 4 o Main dialog box gets the focus when the quick control dialog closes o Multicolumn list boxes now grab focus when clicked upon by the mouse o Option to have quick control or main dialog box to float to top and take focus when the phone rings o Option to have quick control to float on top of desktop o Stop command sent to audio device after playing of sound finished to make sure speakers shut off etc. o Added dialog to show the progress of loading and decompressing an answering machine message o Added options page to the configuration notebook v1.00 o ICTalk server now uses a single thread to handle all the connected clients. This is more efficent and requires less system resources. o All thread stacks are now 32K or greater. This solves the problem of running out of space on the stack (SYS3171 errors). o Major improvement in the send/recv protocol which speed up transmition time dramaticly over long distances. o Improved semaphore coordination on main thread which should help to stop any user interface lockups due to waiting on a semaphore. o Add to Dialing Directory button in Caller ID group now unhighlights if the caller ID entry already exists in the dialing directory. o Shifted help submenu to the right of the menu bar. o If dynamic IP chosen in the configuration notebook for the first time then InterCom automaticly logs into the ICDynaIP server when the configuration is saved instead of having to reload InterCom. o Fixed socket being set in blocking mode if you were called. o Removed memory leak checker which might have been locking up the user interface. v1.01 o Fixed invalid pointer to one of the record buffers. This could have been causing an unknown number of problems including system or program crashing. o Reworked the way audio is stored and played. o Fixed the way the play thread ended. o If float to top upon ring is selected then Quick Control or the main dialog will now restore themself if minimized when the phone rings. o ICTalk dialog will now restore itself if minimized when ICTalk is selected from the InterCom menu. o When an entry in the ICPages Search dialog is selected to be added to the dialing directory it is deleted from the ICPages search results list box. o Wrote a smaller less complicated installation program to take the place of the installation program created with IBM's Software Installer. v1.02 o Reworked the MMPM recording playlists to make them move efficent when stopping the recording. o No more audio seek when starting to play or record audio. Should remove some little amounts of delay. o Icon is now saved as VGA independent. The artist of the icon had originally saved it as XGA/8514 and this was overlooked so it wouldn't display on some systems. o The record buttons now have the option of functioning like a CB button does. Hold it down with the mouse or use the SPACE or ENTER key on the keyboard. When you release the mouse or key the recording stops. o The send/recv thread is more efficent and does better full duplex transmittion of data on a single socket. o 0 byte registration key no longer created if the real registration key doesn't exist in the directory. o Added connection statistics to the ICTalk server dialog box. o Removed error messages from ICTalk server commonly generated when client breaks the connection instead of logging out. o Error message function was not correctly allocating memory to hold the filename of the module where the error occurred. o Space not allocated for NULL that terminates the string in the error message data structure. Could have caused program to crash previously when trying to display a simple error message. o Space not allocated for NULL for server update string that is sent to ICTalk dialog box. This could have caused the program to crash when logging into a server or logging out. o Space not allocated for NULL when storing the address of the server connected to in the connected servers information array. o Fixed Clear button on the caller ID box shifting the array incorrecting. o Fixed dialing directory array shifting incorrectly when an entry was deleted. o Caller ID edit button now works correctly. o Fixed call blocking array shifting incorrectly when an entry was deleted. o Corrected minor documentation errors. o Help panel IDs are no longer shown. o Added Quick Start help information. v1.03 o Bug reading answering machine data when initializing fixed. o If answering machine encounter a error it would cause the current conversation to hangup. o Recording buttons were processing mouse clicks and keyboard activity even when disabled. o Fixed memory leaks in some custom controls o Lossy compressor for answering machine recording now deinitializes at program exit. o Answering machine record thread now exits correctly. o Main dialog box now destroyed when program exits. o Object thread window now destroyed when program exits. o Memory now freed for results received from ICPages server. o Memory for ICTalk server list deallocated when new server list is saved from the configuration notebook. o Blocking setting on socket not changed when send/recv thread exits. o If there is an error in a conversation and there is any of the audio in the incoming buffers it is now deallocated. o Link listed now correctly deallocates memory allocated for sound. o Packet header memory deallocated if no data accompanied the header now. v1.04 o Moved ICTalk menu option from InterCom submenu to the an action button on the bar for easier access to the ICTalk dialog. o Rewrote the entire send/recv thread. This will hopefully eliminate the bug that was causing the protocol that InterCom uses to get out of sync and therefore cause a memory allocation error. This rewrite also hopefully stops the bug which caused the send/recv thread to take up the entire CPU time which made the system act like it was locked up even though it wasn't. v1.05 o When answering machine message is sent to remote user it is not opened in read only mode to prevent access violations if multiple people connect to the answering machine at the same time. o Fixed adding of duplicate names to the ICTalk connected people list box due to connecting to multiple servers. o If another user was on two servers that you were connected to and he logged off one of them it will now update the list to reflect the server address change. o Removed high priority threads. This option wasn't needed and had no effect on the quality of performance. o Added ICPages search result counter. o ICTalk server statistics box added to the dialog to show the number of people on the servers and the number of connected servers. o Fixed CB Style button in Quick Control dialog. o Multicolumn list box now has self adjusting column widths to use no more of the column than is needed to display the longest string in the column. o Fixed the DOS subsystem unknown error 95 being returned whily waiting on a semaphore. o Changed calling window spin buttons to include the minute. Time window is now completely flexible. o Removed alias from configuration and use name instead. Comment field moved from server page to the general configuration. o Added language spin button to general configuration. The language is displayed as part of the user information on the ICTalk connected people list. o Error message no longer displayed if someone calls and gets the answering machine, but no answering machine message has been recorded yet. o Replaced all calls to send with a call to a looping function which makes sure the data gets sent in case the socket is in non-blocking mode. o Reworked tab stops and order of controls in each dialog. o Added configuration option to force remote to use 11025 while recording. o ICTalk connected people list now shows who is registered. o ICTalk connected people list now shows who is talking to some one at the current time. o Ring on callers side more consistent because it isn't based on the ring packets received from the called user's system. o Ring know heard through the audio device. PC Speaker is still an option. o Added replay last sound button so that messages can be replayed over and over. o Added manual dial entry field to the call person dialog box. v1.06 o Now spawning another thread to handle hangup so that object window thread can not pause. o Phone stops ringing if error encountered in the send/recv thread while the phone was ringing. o Server count is now correct when someone clicks login all and one of the server logins fails. o When the InterCom ringing the answer button automaticly receives focus so that all that is needed is to click enter real quick to answer. o Manual dial entry field on call dialog now enables OK button when text is entered. o Fixed scrolling bug in location and comment field in the general page of the configuration notebook. o Removed most of the buttons in the CallerID and Answering machine group boxes and replaced them with a right mouse click popup menu. o Review answering machine greeting only works if a greeting exists. o If a new answering machine message is received the answering machine group box displays changes to show the new message instead of just incrementing the counter. Make it easier to notice. o Start recording button doesn't highlight until the remote user answers the phone. It was highlighting prematurely after the first ring. o Pending rings are cleared once answer clicked or the remote user answers. o New thread handling for the answering machine. Should cope with errors and shutdown of the answering machine alot better. o Option to force sound card to work in 8 bit mode. This was needed by some people because their hardware will not function in 16 bit mode even if it is supposedly a 16 bit card. o If multiple calls at the same time it synchronizes them so that there is no conflicts. The first one causes it to ring the phone. The second one gets the answering machine. o Added return call selection to the caller ID popup menu. o Moved sample rate slider from main dialog to the compression page in the configuration notebook. o Added clock and the elapsed time since the call started. o Fixed bug that caused long pause if a sound is waiting to play while the user was recording. o Added wait for disconnect popup dialog with option of immediate disconnect. This will allow you to wait for pending data to be transmitted if it exists. o Reworked talk thread synchronization. v2.00 o Input level and gain no longer adjusted when recording. This was causing problems on some cards with auto gain adjust. o Fixed one byte memory leak in ICTalk server. o Reworked thread synchronization of ICTalk server. o Added conditional cascade to menu bar for configuration selection. o Added QuickCam support. This was a major enhancement and took a lot of time. o INI upgrading. This version will import and convert your configuration from 1.06 v2.01 o The send/recv loops have been optimized. This has resulted in substantial increase in data transfer speeds. o Camera icon now has a red "X" over it when the video is muted. o InterCom now automaticly tries to reconnect to the ICTalk server if there is a break in the connection. o Shutdown of DynamicIP server connection thread is much faster and smoother. o Added return call menu option to answering machine popup menu. o Fixed a major bug in the ICTalk server that was causing frequent SYS3175s. o Fixed statistics bug on the ICTalk server that caused the current connection count to go below zero. v2.02 o Add support for transmition of static bitmaps as privacy images. This is also another way for those people who don't have cameras to have video support. o Redesigned the layout of the configuration notebook. o Allow snapping of test images from the QuickCam Adjust page of the configuration notebook while online. This allows for quick correction of bad image settings. o IP addresses are now converted back to name format instead of dotted decimal format when caller ID, answering machine, and other parts of the program are udpated. o Product information screen now shows if the FASTIO.SYS driver is installed in the system. o ICTalk server now shows IP addresses in name format instead of dotted decimal. o ICTalk server no login prints login/logout statements to the status listbox, but instead keeps an up-to-date list of all the people logged in. v2.03 o Rewrote a majority of the documentation. o Replaced the multicolumn list box control used for the ICTalk Connected People list with a container control in detailed view. o Added support to filter out busy and unregistered users from appearing in the ICTalk connected people list. o Added option to toggle whether or not convert IP from dotted form to hostnames. This was built in feature in 2.02 that was causing some delays if the domain name server took a long time to resolve the IP. o Rewrote playback system to better coordinate the semaphores used to control access to the audio device and help eliminate chances of user interface slowdowns. o Reworked the multithreading of the recording to improve the access to the audio device. o Added playback support using DART (Direct Audio) v2.04 o Fixed bug with the statistics not updating on the ICTalk dialog o Added call forwarding o Reorder some of the tabing in the configuration notebook dialogs o Added adaptive compression file transfers o Consolidated call, answer, and hangup in to one button sense only one was active at any one time during the program. o Reworked multithreading of the answering machine. o Added replay button to quick control dialog. o Fixed bug. If duplicate keys called each other it would hangup, but the transmit thread would block itself from ending and caused other threads from ending. o Most of the major dialogs save their position when closed now. o Enhanced message communication between threads. o Fixed small memory leak in ICTalk connected people list o Added autoconnect to all servers option. o Added start minimized option. o Installation program now has an option to create an icon on the desktop. o Added option to show quick control upon startup instead of the main dialog box. o Alphabetized the lists of checkboxes on the options pages in the configuration notebook. o If the float to top upon ring is activate and the phone rings it will now restore the dialog if it is minimized. v2.04b o If CB style record buttons were on and the button was just clicked it would start two threads recording instead of stopping the recording is fixed. o Fixed the control button toggling from hangup to call when the answering picked up. v3.00 o Dynamicly create ICTalk filter popup menu instead of loading it from the resource file. This should stop it from appearing at the top of the ICTalk dialog. o Fixed user interface lockup caused by a popup menu being open and the user clicking on the normal menu. o Improved shutdown. o If instant shutdown is chosen from the wait for disconnect dialog there will no longer be any TCP/IP errors such as socket operation on nonsocket. o Fixed bug in the file transfer status field. It would keep putting finished there when it wasn't supposed to. o Added busy answering machine which is played if you are on the phone talking to someone. o Removed divider in the ICTalk connected people list. o The audio device is now accessed exclusively during recording and playback. This will prevent interruption by other system sounds. This will also stop the inactive instance error messages. o Fixed bug that allowed auto connect to the ICTalk server even if there was no name in the configuration information. o Local video page has quick adjustments for the QuickCam. o LEDs are now in a independent dialog. o Seperate LEDs now for audio, video, and file data. o Added ICTalk login notify feature. o Added support for answering machine messages for specific users. o Replaced stop light control with new flashing light bar. o ICTalk servers are now networkable. o ICTalk servers now place sockets in nonblocking mode to enhance the the performance under critical loads. o Added two more ICTalk servers to the list. o ICTalk connected people list now has a column to show if they have video support. o Created high priority outbound queue to speed things like file transfer exceptance up. o Custom PM controls now contained in a seperate DLL o Custom User Interface now contained in a seperate DLL o Introduction screen now shows the first time the program is loaded. o Change Dial Dir. to Phonebook. o Added a popup dialog to let the user know that the remote user's answering machine received the call and that the greeting is being transferred. o More additions to the FAQ concerning things like IBM ThinkPads. v3.01 o Fixed SYS3175 occasionally caused by updating of the ICTalk connected people list. ICTalk server wasn't initializing one of the fields in the data sent. o Fixed sockets not being closed when connection to ICTalk server had a problem and it had to automaticly reconnect. o Fixes server sending an incorrect alive packet to the client so the client thought the server had been disconnected. o Right click popup menu on the connnected people list now has a default server menu item which allows you to change the default server really easily. o Fixed the Quick Control at startup feature. o Fixesd when a server connected to its uplink and negotiated the version successfully the uplink server was passing down the names of all the people on the server at the time they connected. o Removed some code in the program that was responsible for giving the error code "OS/2 Error" from the TCP/IP recv function. o Made it set the socket send/recv buffer size to 16K instead of whatever the default was. This should provide some better performance on the connection. o Fixed bug in ICTalk server network that caused blank names to appear in the connected people list on the client side. o Added total number of people on the ICTalk server network counter. v3.02 o Fixed the network counter error in the ICTalk server caused by an occassional duplicate login being reported from one server to another server. o Fixed file transfers stopping if video was enabled, but muted. o ICTalk list now uses a case insensitive sort routine. o Logout packet sent to the ICTalk server if the application is closed without the user clicking disconnect. o Fixed the problem with the dialog floating to the top when the phone rang when it wasn't supposed to. o Added feature to delete the saved window positions. This is useful if you change resolutions and the status or another dialog is not visible on the screen. o Status dialog now appears on the tasklist when open. o Fixed some of the custom PM controls not getting the focus for the dialog when they were clicked. o Reworked the configuration reading code so that it deletes version of the INI that are sold old that they are not upgradable. Ver < 3.00 gets initialized to the default values. o Added scaler compression to file transfer feature. If the comppression ratio is good it will read large chunks of data from the drive. 50% read twice the data and 66% reads three times the data. o Fixed bug which could cause the thread that handles the client and server data to halt. o Fixed auto reconnect to uplink server in the ICTalk server. o Added field to ICTalk server connection statistics box to tell whether or not the server is connected to its uplink. o Added a field to the ICTalk server connection statistics box to tell how many downlink servers have connected to your ICTalk server. o Servers now notify all the clients and the other connected servers that they are being shutdown. This will make a cleaner reconnect since the other clients and servers won't have to wait for a socket connection break which could take a few minutes. o Added Off Hook feature to the popup menu that is available by right clicking on the connected people list. o Now loads the status dialog box if it was opened the last time the program was shut down. o Added option of having the notebook pages automaticly turn if a call is recieved, and answering machine message left, a file transfer initiated, or a new message in the text chat window. v3.03 o Answering machine messages are now always recorded at 11025 sampling rate because some sound cards can not handle the 8000 sampling rate. o Fixed hangup button on the waiting for answering machine greeting dialog. o Video light on the ICTalk server now shows if the camera is enabled, but now does not reflect whether it is muted. o The conversation input MLE will not export more than one line if it wraps around. o Added file transfer resume feature. o Fixed a bug in the function that waited for data to be available on a socket. This caused problems with people not being able to log in to the ICTalk server or hold conversations. o Increased the linger time on a socket when being closed to allow for the data that needs to be transmitted to be send before the socket is closed. o Fixed SYS3175 caused when attached to the ICTalk server because of an invalid language type index value from a login report packet. ICTalk server and the InterCom client now check and correct this variable if it is invalid. o Increased the font size in the text chat conversation window. v 3.10 o Added a new multithreaded TCP/IP class which the send/recv thread now relies on. This should improve the preformance some. o Added top/bottom of notebook arrow buttons to the main dialog. o Status bar now says if the copy of InterCom that is running is registered or not. o Added call button to the ICPages search dialog so that you don't have to add the person to the phonebook before you can call them. o ICPages search dialog is now independently floating so it can stay up once someone has been called etc. o Added resizeable main dialog which also stretchs some of the pages in the notebook located in the center. o Removed connection broken error message from the answering machine send/recv thread because this is caused by the people who called closing the program without hanging up. o Fixed bug in the answering machine which would cause 100% CPU usage if the two minute connection timeout expired. o Added private text messaging through the ICTalk server. o Added voice activated recording support and retained the support for using the older style of recording buttons. o Added support to send end packet in the audio stream when the recording senses a pause in the audio. o Moved ICPages submenu to the action bar instead of having it under the InterCom submenu. o Moved delete saved window pos and status option from the other submenu to the InterCom submenu. o Removed the option for no compression on the audio. There is no reason why loseless would not be used in place of none. o Moved the option for CB Style record buttons from the system page to the audio page in the configuration notebook. o Made sure that buttons were CB Style enabled/disabled probably when this option was changed in the configuration notebook. o The connected people list now reflect in the connected people counter that there is one person on if you are the only one on the ICTalk server. o Answering machine no longer automaticly hangs up after recieving one segment of audio. This was needed because of the new VOX system and some of the options for the audio streaming. o Option to have floating video windows instead of using the pages located in the main window's notebook. o Added language filter to the right click popup menu for the ICTalk connected people list. o Fixed the help on the ictalk login notify page of the configuration notebook. v3.11 o Fixed bug where the sample rate packet would not get sent. This would cause the audio to play really slow on the remote client. o Integrated the phonebook editing, call blocking, and dialing in to one new dialog. o Added comment field to the phonebook. o Fixed bug with the mute not being reset on the VOX once a call ended. v 3.12 o Fixed bug in the multimedia code when running under the Merlin beta 1. o Fixed the busy/unregistered/language filtering. o Added a reply button to the ICTalk private message received window. o Added support for InterCom loading without multimedia hardware being present in the system. This will allow for people to use it for just chat, file transfers, and video. o Added cut/paste support to the text conversation window. v 3.13 o Fixed the sample rate packet not being sent which caused slow play on the other end. o Added icon to the system menu button. o Floating video windows are now destroyed upon exit. This keeps them from leaving zombie window entries in the Warp Center (part of merlin) task list. o Fixed some memory leaks in the closing of the windows at exit and in the connection to the ICTalk server. v3.14 o Created ICEcho server. Allows for testing of audio, video, and text messages without having another InterCom client present. o Added handling for unrecognized packets in the clients and servers to make sure that no memory could be leaked if a future packet was added that the client or server did not recognize. o Fixed direct opening of a specific page in the configuration notebook. o Fixed Zorder bug in the ICTalk private message window when reply was chosen. o Floating video windows will now be created from the default size and position if they where minimized when the program exited. o Created ICReport server. Allows for the sending of bug reports, suggestions, and product ratings to the authors. o The local video window will now disable a message stating the remote user does not want video if they are refusing it. o The video windows in the main notebook now have message saying to see the floating video windows if the floating windows are enabled. o Introduction image no longer takes up the entire screen. o Fixed bug in the answering machine which caused the messages not to be saved. v3.15 o Filter busy/unregistered is now only available from the right click menu for the connected people's list. o Moved the ICTalk server controls to the bottom of the notebook page and widened the list so it takes up the entire width of the notebook page. o Video windows now erase images or messages about refused video when the call is terminated. o Added scrolling notice box to the ICTalk server page. o Added persistant reconnect option to the ICTalk options. o Added toggle on system page of the configuration notebook to allow choosing of whether the pages of in the main window's notebook will hide will offline. o Now only one error message at a time can be displayed. This will prevent multiple error messages from causing a sys3175. o Added CPS and ETA feature to the file transfer page. o The default file transfer block size is now 1024 instead of 512. o Added simple text chat to the ICTalk server. This provides a primitive type IRC chat. o Fixed some problems related to the reading of the configuration and the forcing of 11025 recording. o Added support for configurable ring sounds using .WAV files.